package org.gol.paxos.role;

import java.util.concurrent.BlockingQueue;

import org.gol.paxos.Message;
import org.gol.paxos.Topic;

/**
 * @package org.gol.paxos.role
 * @description 【提案人】
 * @author Goliath
 * @createTime 2012-11-22 上午9:02:46
 * @modifyTime
 */
public interface Proposer {

	/**
	 * @package org.gol.paxos.role
	 * @description 加工议题，带上自己的值 和 序号
	 * @returnType void
	 * @author Goliath
	 * @createTime 2012-11-22 上午9:14:26
	 * @modifyTime
	 */
	public void createProposal(Topic oTopic);

	public void receive(Message oMessage);

	public void standBy();

	public BlockingQueue<Message> getMessageQueue();
}
